package br.com.treinar.controller;

import java.util.ArrayList;

import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import br.com.treinar.modelo.Contato;
import br.com.treinar.modelo.Telefone;
import br.com.treinar.service.CadastroContatoService;
import br.com.treinar.util.AppException;

@ManagedBean
@SessionScoped
public class CadastroContatoMB {

	private Contato contato;

	private CadastroContatoService service;

	@PostConstruct
	private void init() {
		service = new CadastroContatoService();
		contato = new Contato();
		//contato.setTelefones(new ArrayList<Telefone>());
		//contato.getTelefones().add(new Telefone());
	}

	public String cadastrarContato() {
		FacesContext facesContext = FacesContext.getCurrentInstance();
		FacesMessage facesMessage = null;
		String retorno = null;
		try {
			service.cadastrarContato(contato);
			facesMessage = new FacesMessage(FacesMessage.SEVERITY_INFO, "Contato gravado com sucesso", "");
			facesContext.addMessage(null, facesMessage);
			retorno = "listar";
		} catch (AppException e) {
			facesMessage = new FacesMessage(FacesMessage.SEVERITY_ERROR, e.getMessage(), "");
			facesContext.addMessage(null, facesMessage);
			retorno = "cadastrar";
		}
		return retorno;
	}

	public void adicionarTelefone() {
		//contato.getTelefones().add(new Telefone());
	}

	public Contato getContato() {
		return contato;
	}

	public void setContato(Contato contato) {
		this.contato = contato;
	}

}
